﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using proyectoFinalPDS.Presentacion;

namespace proyectoFinalPDS.Persistencia
{
    public class DAOCursos
    {
        MapeadorSQLDataContext db;

        public DAOCursos()
        {
            db = new MapeadorSQLDataContext();
        }
        internal List<Presentacion.DTOCursos> getCursos()
        {
           

            List<DTOCursos> ldtoc = new List<DTOCursos>();

            List<Curso> lc = (from c in db.Curso
                                select c).ToList<Curso>();


            foreach(Curso c in lc)
            {
                if (c.fechaFin.Value.CompareTo(DateTime.Now) > 0)
                {
                    DTOCursos dtoC = new DTOCursos();

                    dtoC.agregarCurso(c);

                    ldtoc.Add(dtoC);
                }
            }

            return ldtoc;
        }

        internal List<Presentacion.DTOCursos> getCursos2()
        {


            List<DTOCursos> ldtoc = new List<DTOCursos>();

            List<Curso> lc = (from c in db.Curso
                              select c).ToList<Curso>();


            foreach (Curso c in lc)
            {

                    DTOCursos dtoC = new DTOCursos();

                    dtoC.agregarCurso(c);

                    ldtoc.Add(dtoC);
                
            }

            return ldtoc;
        }


        internal Curso getCurso(int p)
        {
            

            Curso curso = (from c in db.Curso
                          where c.idCurso == p
                          select c).First<Curso>();

            return curso;
        }

        internal List<Curso> getCursosCompletos()
        {
          


            List<Curso> lc = (from c in db.Curso
                              select c).ToList<Curso>();


            return lc;
        }

        internal bool persistir(Curso curso)
        {
            try
            {
                db.SubmitChanges();
                return true;
            }
            catch (Exception)
            {
                return false;
            }
        }

        internal List<DTOCursos> getCursosAlumno(int idUsuario)
        {
            Alumno usuario = (from u in db.Alumno
                               where u.idUsuario == idUsuario
                              select u).First<Alumno>();

            List<DTOCursos> listaCursos = new List<DTOCursos>();

            foreach (Alumno_cursa a in usuario.Alumno_cursa)
            {

                DTOCursos dtoC = new DTOCursos();
                dtoC.agregarCurso(a.Curso);

                listaCursos.Add(dtoC);
            }


            return listaCursos;
        }
    }
}
